refactored choose random available space