introduce Option to the system (let's get rid of NULL)

also add new ReportDAO to deal with report data