initial commit - based on code originally devceloped on google code