Revert "Revert "continuing adding functionality""

This reverts commit df96478472822ecc411df3bdfff764c30bce59e7.