major update + structure change