Works with a few errors. Need to update clear the errors and improve coding quality.