added perspective & object collision