File reorganization to be more standard and separate API from implementation