Base implementation

Entire interface is kinda terrible :-\