Code mostly finished, test plan and code needs to be optimized. add checks for null and so on