Initial commit of src and tests