start partial support. First, we will do compile time partial support as start