graduation project, transferring  from google code repo