works completely and COLORS :D