much cleaner structure