Separated core logic from test/ext logic from util logic