Updated - Partially works