by Friman's design patterns