Taking out implementation specific stuff