it makes the code more complex (a little bit). but we can do it... interestingly it's not increasing the code size?!?