abstraction by Boudraf Abdo
_