initial commit; need to finalize core