added singer interface