Actual implementation of CSE 308 project.