static parts mostly done