Refactored. Implementing weights form