some project restructuring and adding missing classes