this is hard

working on it