try to make it cleaner