Started implementing interfaces (#2)