FIX: Generalize to arbitrary size