Move common implementation to bottom to make interface a bit more accessible.