extracted DAO layer