Need to clean it up, make it less repetetive