Refactored a bit and added a TODO spec