be more strict here
less confusing