I've refactored these, take a look?