added on completed functionality