Fixed interfaces
Added implementations