could be cleaner