not entirely sure if necessary, but definitely safe
safe due to 'if' guards