initial commit of basic functionality and some basic checks.