refactor for psr0