added initial framwork