Working version but ugly and bad