solves #4, but im going to keep open beacuse i know i can make more changes to this