Base implementation

@Ocramius, @DASPRiD, @Xerkus Not sure about this baby