Reworked everything with vectors