new core stuff
spliting functionality