Better solution for issue #4. Less messy API