Implement everything except #merge and #render