moved some things to internal namespace