compile behaviour first