Could be a lot cleaner