Added pimped syntax and some refactoring