BS-9920
Some refactor & implementations