Added more files
Add upcasting, downcasting