Overall okay, could be cleaner