more cleanly code