Let's start refactoring this..