Implement more of core layer