updated many things to make it cleaner