basic structure done
merges are getting fixed