further progress added functionality