Seperating schema from implementation