make everything dynamic