split method + cleanup