use a list for the declaration order