Could be way cleaner