server core refactor
specs passing