Separated Implementation from Interfaces