Changed a little on the interfaces to conform identical structure.