nicer but still not perfer