cleaner code structure