Split out handle class into its own file
[cmake] add include files to sources
extract argument helpers to its own file